package com.hb.trade.client.project;

import com.hb.core.pojo.parent.PageResult;
import com.hb.core.pojo.project.portal.dto.PortalNoticeDTO;
import com.hb.core.pojo.project.portal.entity.PortalNotice;
import org.fzzn.core.model.msg.Message;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 处理推送门户数据
 *
 * @author tian
 * @date 2022年05月25日 16:32
 */
@FeignClient("hb-project")
public interface PortalNoticeClient {


    /**
     * 保存门户信息
     *
     * @author tian
     * @date 2022-5-25 17:17
     * @param portalNoticeDTO
     * @return org.fzzn.core.model.msg.Message<java.lang.Boolean>
     */
    @PostMapping("/portalNotice/savePortalNotice")
    Message<Boolean> savePortalNotice(@RequestBody PortalNoticeDTO portalNoticeDTO);

    /**
     * @Description: 查询公告列表
     * 门户查询相关公告
     * @author yuezheng
     * @param portalNoticeDTO
     * @return org.fzzn.core.model.msg.Message<java.util.List<com.hb.core.pojo.portal.entity.PortalNotice>>
     * @date 2022/5/26 16:04
     */
    @PostMapping("/portalNotice/listPortalNotice")
    Message<List<PortalNotice>> listPortalNotice(@RequestBody PortalNoticeDTO portalNoticeDTO);

    /**
     * @Description: 门户查询公告详情
     *
     * @author yuezheng
     * @param portalNoticeDTO
     * @return org.fzzn.core.model.msg.Message<com.hb.core.pojo.portal.dto.PortalNoticeDTO>
     * @date 2022/5/26 15:14
     */
    @PostMapping("/portalNotice/findNoticeById")
    Message<PortalNoticeDTO> findNoticeById(@RequestBody PortalNoticeDTO portalNoticeDTO);

    /**
     * @Description: 门户公告查询
     *
     * @author yuezheng
     * @param portalNoticeDTO
     * @return org.fzzn.core.model.msg.Message<com.hb.core.pojo.parent.PageResult<com.hb.core.pojo.portal.entity.PortalNotice>>
     * @date 2022/5/26 13:43
     */
    @PostMapping("/portalNotice/pagePortalNoticeList")
    Message<PageResult<PortalNotice>> pagePortalNoticeList(@RequestBody PortalNoticeDTO portalNoticeDTO);



    /**
     * 查询公告推送信息
     *
     * @author tian
     * @date 2022-5-26 16:20
     * @param portalNoticeDTO
     * @return org.fzzn.core.model.msg.Message<java.util.List<com.hb.core.pojo.portal.entity.PortalNotice>>
     */
    @PostMapping("/portalNotice/listPortalNoticeByPushStatus")
    Message<List<PortalNoticeDTO>> listPortalNoticeByPushStatus(@RequestBody PortalNoticeDTO portalNoticeDTO);


    /**
     * 标记推送状态为已推送
     *
     * @author tian
     * @date 2022-5-26 16:20
     * @param ids 待修改推送状态的ids
     * @return org.fzzn.core.model.msg.Message<java.util.List<com.hb.core.pojo.portal.entity.PortalNotice>>
     */
    @PostMapping("/portalNotice/updatePushStatusByIds")
    Message<Boolean> updatePushStatusByIds(@RequestBody List<Long> ids);

    /**
     * 管理后台 - 分页查询公告
     *
     * @param portalNoticeDTO
     * @return
     */
    @PostMapping("/portalNotice/pagePortalNoticeList4Manager")
    Message<PageResult<PortalNoticeDTO>> pagePortalNoticeList4Manager(@RequestBody PortalNoticeDTO portalNoticeDTO);

    /**
     * 管理后台 - 删除公告
     *
     * @param portalNoticeDTO
     * @return
     */
    @PostMapping("/portalNotice/delPortalNotice")
    Message<Boolean> delPortalNotice(PortalNoticeDTO portalNoticeDTO);

    /**
     * 新增/编辑公告
     * 保存通用接口
     *
     * @param portalNoticeDTO
     * @return
     */
    @PostMapping("/portalNotice/savePortalNotice4Manager")
    Message<Boolean> savePortalNotice4Manager(@RequestBody PortalNoticeDTO portalNoticeDTO);
}
